.TH "install" 3 "Wed Jan 28 2015" "Version 0.9.0-33_trunk" "libnetconf" \" -*- nroff -*-
.ad l
.nh
.SH NAME
install \- Compilation and Installation 

.SH "Cloning git repository"
.PP
As written on libnetconf's \fCGoogle Code page\fP, the repository can be cloned using the following command:
.PP
.PP
.nf
$ git clone https://code\&.google\&.com/p/libnetconf/
.fi
.PP
.PP
\fBNote:\fP
.RS 4
In case that git fails to clone the repository make sure your git is at least version 1\&.6\&.6\&.
.RE
.PP
.SH "Requirements"
.PP
Before compiling the source code make sure that your system provides the following libraries or applications\&. Some of them are optional or can be avoided in cost of missing of some feature - see the notes for the specific item\&. All requirements are checked by the \fCconfigure\fP script\&.
.PP
.IP "\(bu" 2
compiler (\fIgcc\fP, \fIclang\fP, \&.\&.\&.) and standard headers
.IP "\(bu" 2
\fIpkg-config\fP
.IP "\(bu" 2
\fIlibpthreads\fP
.IP "\(bu" 2
\fIlibxml2\fP (including headers from the devel package)
.IP "\(bu" 2
\fIlibxslt\fP (including headers from the devel package)
.IP "\(bu" 2
\fIlibssh2\fP (including headers from the devel package)
.IP "  \(bu" 4
can be omitted by \fC--disable-libssh2\fP option, but in that case a standalone SSH client (usually from the openSSH) is required\&. For more details, see \fB--disable-libssh2\fP description\&.
.PP

.IP "\(bu" 2
\fIlibcurl\fP (including headers from the devel package)
.IP "  \(bu" 4
can be omitted by \fC--disable-url\fP option, but in that case the NETCONF :url capability is disabled\&.
.PP

.IP "\(bu" 2
\fIlibopenssl\fP (including headers from the devel package)
.IP "  \(bu" 4
required only when the TLS transport is enabled by \fC--enable-tls\fP option\&. More information about the TLS transport can be found in \fBTransport Protocol\fP section\&.
.PP

.IP "\(bu" 2
\fIdoxygen\fP
.IP "  \(bu" 4
optional, required to (re)build documentation (\fCmake doc\fP)
.PP

.IP "\(bu" 2
\fIrpmbuild\fP
.IP "  \(bu" 4
optional, required to build RPM package (\fCmake rpm\fP)
.PP

.PP
.SH "Compilation"
.PP
libnetconf uses standard GNU Autotools toolchain\&. To compile and install libnetconf you have to go through the following three steps:
.PP
.PP
.nf
$ \&./configure
$ make
# make install
.fi
.PP
.PP
This way the library will be installed in \fC/usr/local/lib/\fP (or lib64) and \fC/usr/local/include/\fP respectively\&.
.SS "Configure Options"
\fCconfigure\fP script supports the following options\&. The full list of the accepted options can be shown by \fC--help\fP option\&.
.PP
.IP "\(bu" 2
\fC--disable--libssh2\fP
.IP "  \(bu" 4
Remove dependency on the \fClibssh2\fP library\&. By default, the \fClibssh2\fP library is used by the client side functions to create SSH connection to a remote host\&. If the usage of the \fClibssh2\fP is disabled, libnetconf will use a standalone \fCssh(1)\fP client located in a system path\&. \fCssh(1)\fP client is, for example, part of the OpenSSH\&. This option has no effect for server-side functionality\&.
.PP

.IP "\(bu" 2
\fC--disable-notifications\fP
.IP "  \(bu" 4
Remove support for the NETCONF Notifications\&.
.PP

.IP "\(bu" 2
\fC--disable-url\fP
.IP "  \(bu" 4
Remove support for NETCONF :url capability\&. cURL dependency is also removed\&.
.PP

.IP "\(bu" 2
\fC--disable-validation\fP
.IP "  \(bu" 4
Remove support for NETCONF :validate capability\&.
.PP

.IP "\(bu" 2
\fC--disable-yang-schemas\fP
.IP "  \(bu" 4
Remove support for YANG data model format for <get-schema> opration\&. With this option, only YIN format is available\&.
.PP

.IP "\(bu" 2
\fC--enable-debug\fP
.IP "  \(bu" 4
Add debugging information for a debugger\&.
.PP

.IP "\(bu" 2
\fC--enable-tls\fP
.IP "  \(bu" 4
Enable experimental support for TLS transport\&. More information about the TLS transport can be found in \fBTransport Protocol\fP section\&.
.PP

.IP "\(bu" 2
\fC--with-pyapi[=path_to_python3]\fP
.IP "  \(bu" 4
Build also the libnetconf Python API\&. This requires python3, so if it is installed in some non-standard location, specify the complete path to the binary\&. For more information about Python API, see a separated doxygen documentation accessible from the project main page\&.
.PP

.IP "\(bu" 2
\fC--with-nacm-recovery-uid=<uid>\fP
.IP "  \(bu" 4
Specify user ID to be used for the identification of the \fBNACM Recovery Session\fP\&.
.PP

.IP "\(bu" 2
\fC--with-workingdir=<path>\fP
.IP "  \(bu" 4
Change location of libnetconf's working directory\&. Default path is \fC/var/lib/libnetconf/\fP\&. Note that applications using libnetconf should have permissions to read/write to this path, with \fC--with-suid\fP and \fC--with-sgid\fP this is set automatically\&.
.PP

.IP "\(bu" 2
\fC--with-suid=<user>\fP
.IP "  \(bu" 4
Limit usage of libnetconf to the specific \fIuser\fP\&. With this option, libnetconf creates shared files and other resources with access rights limited to the specified \fIuser\fP\&. This option can be freely combined with the \fC--with-sgid\fP option\&. If neither \fC--with-suid\fP nor \fC--with-sgid\fP option is specified, full access rights for all users are granted\&.
.PP

.IP "\(bu" 2
\fC--with-sgid=<group>\fP
.IP "  \(bu" 4
Limit usage of libnetconf to the specific \fIgroup\fP\&. With this option, libnetconf creates shared files and other resources with access rights limited to the specified \fIgroup\fP\&. This option can be freely combined with the \fC--with-suid\fP option\&. If neither \fC--with-suid\fP nor \fC--with-sgid\fP option is specified, full access rights for all users are granted\&.
.PP

.PP
.PP
\fBNote:\fP
.RS 4
If the library is built with \fC--with-suid\fP or \fC--with-sgid\fP options, the proper suid or/and sgid bit should be set to the server-side application binaries that use the libnetconf library\&. 
.RE
.PP

